Azure availability set vs availability zone
In this video we will discuss the difference between availability set and availability zone in Azure.
Update Domains and Fault Domains in an Availability Set
Availability set is a concept with in a datacenter.
The servers in a datacenter are divided into multiple physical and logical groups. The physical grouping is called fault domain and the logical grouping is called update domain.
You can think of each rack of servers with it's own power supply and network switch as one fault domain. So, if there are 10 racks of server in a datacenter, it's like you have 10 different falut domains. Now, you may be thinking, why is such a grouping required. Well, to eliminate single point of failure.
For example, let's say in a datacenter, we have 100 servers and all these servers are connected by a single power supply and network switch. What if that single power supply or network switch fails? Well, all the 100 servers will fail as well.
So, to eliminate such a single point of failure, each rack of servers has it's own power supply and network switch. Let's say in each rack we have 10 servers. When the power supply or network switch in that rack fails, only the 10 servers in that rack are affected. The rest of the 9 racks i.e the other 90 servers are unaffected.
So, by grouping servers in a datacenter into multiple racks i.e multiple fault domains, we are able to eliminate a single point of failure.
Same idea with update domains. If there are 100 servers in a datacenter, they are logically grouped into 10, 15 or 20 update domains. So the important point to keep in mind is, an update domain is a logical grouping. Why are update domains required? Well, from time to time, server patches and software updates need to be applied. Some updates require servers to be rebooted. Now, we don't want all the servers to be rebooted at the sametime. Only one update domain is rebooted at a time. A rebooted update domain is then given 30 minutes to recover before maintenance is initiated on a different update domain. So, in short, an update domain is a group of servers that can be updated and rebooted at the same time.
An availability set is a concept with in a datacenter and it is made up of multiple fault domains and update domains. In fact, when you create an availability set, you can specify how many fault domains and update domains you want in that availability set. We discussed this in detail in our previous video.
Update Domains and Fault Domains in an Availability Zone
Availability Zone's also have the concept of fault domains and update domains. First, let's understand, what is an availability zone.
Well, an Azure Availability Zone is a unique physical location within an Azure region. Each Availability Zone is made up of one or more datacenters with independent power, cooling, and networking.
Not all Regions have Availability Zones, but regions that do have availability zones, have a minimum of three separate zones.
You can think of each availability zone as a separate fault domain and update domain. So in a given azure region if you have 3 availability zones, then it's like you have 3 fault domains and 3 update domains.
So, for example, if you create three VMs across three availability zones in an Azure region, your VMs are effectively distributed across three fault domains and three update domains.
If one of the Availability Zones has gone down for some reason, we still have 2 VMs from the rest of the 2 availability zones. Similarly, if there is an update or a patch to be applied, azure schedules these at different times for different availability zones. So this means, we have just one of the availability zones affected while the update is being applied. The rest of the 2 zones are unaffected.
Now, here is the important bit to keep in mind. The concept of update domain and fault domain is present in both availability set and availability zone. In case of an availability set, a group of servers (physical or logical), physical grouping i.e a rack of servers is a fault domain and logical group of servers is an update domain. In case of an availability zone, each availability zone itself is considered, a separate falut domain and update domain. So in a given azure region if you have 3 availability zones, then it's like you have 3 fault domains and 3 update domains.
Availability SLA with Availability Set and Availability Zone
The following MSDN page has the VM SLA.
https://azure.microsoft.com/en-us/support/legal/sla/virtual-machines/v1_9/
Microsoft guarantees only 99.9% SLA i.e connectivity, if you create just a single instance of virtual machine in azure.
If you create 2 or more virtual machines in an availability set, then Microsoft guarantees you will have connectivity to at least one of the virtual machines at least 99.95% of the time.
On the other hand, if you create 2 or more virtual machines across 2 or more availability zones, then Microsoft guarantees you will have connectivity to at least one of the virtual machines at least 99.99% of the time.
Difference between Azure Availability Set and Availability Zone
In short, the following are the 2 main differences between an Availability Set and Availability Zone
An availability set protects your azure resources from failures within data centers where as an availability zone protects from entire datacenter failures.
From the Service Level Agreement (SLA) standpoint, i.e uptime and connectivity - With Availability Set azure offers 99.95% SLA where as with Availability Zone we have 99.99% SLA. So, there we go, with availability zones, Azure offers industry best 99.99% VM uptime SLA.
© 2020 Pragimtech. All Rights Reserved.